Abstract
This document outlines the rationale for an analysis of tree growth (potential) and its relationship with the Urban Heat Island (UHI) effect in Berlin using an extensive, publicly available data set. It introduces preliminary results and provides an outlook for up-coming and potential work.
The manifold ecological and societal benefits urban trees provide (e.g., Roy et al., 2012) depend critically on their health and performance. For instance, trees alter local energy budgets (Grimmond et al., 1996 ; Hertel and Schlink, 2019) through shading and transpiration (Endlicher et al., 2016; Gillner et al., 2015), and therefore can reduce ambient temperatures, infrastructure power-consumption and (human) thermal discomfort (Akbari et al., 2001; e.g. Gulyás et al., 2006; Hoyano, 1988; Mayer and Höppe, 1987). However, excess heat common for cities (i.e., Urban Heat Island, UHI, Oke, 1982), combined with other urban conditions, affects tree physiological functioning with outcomes ranging from enhanced growth to early senescence, branch die-back, and even mortality (Au, 2018; Gillner et al., 2014; e.g., Hilbert et al., 2019). Thus, assessing the effect of increased temperatures on trees, as part of urban green infrastructure, is instrumental for understanding as well as adapting to current and expected conditions in this century (Ward and Johnson, 2007), especially considering ever more urbanized societies and the potential for UHI effects to compound with more frequent atmospheric drought (Brune, 2016; Norton et al., 2015; Roloff et al., 2009).
The UHI effect, i.e., the difference between urban and adjacent rural (air) temperatures, has been intensively studied for several decades (cf. Oke, 1982; Stewart, 2011). It is typically related to the structure and density of urban land-use (Kuttler et al., 2015), which can be characterized through local climate zones, and modulated by physiographic and urban characteristics, such as vicinity to water bodies, predominant wind and street direction, etc. (Stewart and Oke, 2012); yet, the physical basis for the excess heat in cities is to a large extent found in the altered surface energy balance as the proportional cover of vegetation decreases compared to rural (or reference) systems (Hertel and Schlink, 2019; Oke, 1992). In temperate climates, this results in strongest UHI magnitudes at night (cf. Fenner et al., 2014). For example, Berlin features the most intense UHI in Germany due to its large extent and development intensity with an average air temperature increase of around 5 K at night-times (2001-2010) with maxima of up to 11 K (Fenner et al., 2014) in urban \(vs.\) rural areas.
Increased air temperatures due to UHIs can affect tree growth through altering several physiological processes across plant organs directly or indirectly (Dusenge et al., 2019). Generally, reaction times at cellular level increase with temperature up to a maximum, after which a drop in enzymatic activity results in a species-dependent optimum curve (Arcus et al., 2016; Parent et al., 2010). In leaves this optimum response is reflected in the net assimilation rate of carbohydrates, as a balance of photosynthesis and respiration, with losses exceeding gains more rapidly with increasing temperatures (Long, 1991). These responses vary between species (Tjoelker et al., 2001) as well as intra-specifically due to local acclimation, i.e., a shift of optimum temperature responses after prolonged exposure (Yamori et al., 2014), and threshold temperatures before tissue damage occurs (for review see Geange et al., 2021). High temperatures in temperate areas are often coincident with low relative air humidity (i.e., large vapor pressure deficit), which in turn can decrease stomatal conductance governing the majority of gas exchange in leaves (Grossiord et al., 2020), and thus the capacity for photosynthesis. Under prolonged stomatal closure (or decreased conductance) with high temperatures, trees may thus face decreased growth (in subsequent years) or even starvation as their carbohydrate reserves are depleted yet not replenished at sufficient rates (McDowell et al., 2008). Furthermore, air (and soil temperatures) affect the initiation, speed and cessation of cambial activity, and thus radial growth throughout a growing season (e.g., see Begum et al., 2013; Rathgeber et al., 2016). Radial growth is increasingly considered to be limited by wood formation dynamics and their relation with environmental drivers, rather than solely by photosynthetic activity (Körner, 2015). In particular, the availability of soil water is critical for cell expansion (e.g., Peters et al., 2021) and most likely limits radial growth before photosynthesis (Fatichi et al., 2014); however, this water availability is again linked to local climate as higher temperatures drive evaporation and thus may contribute to the depletion of soil water storage, impeding growth.
Urban trees show a tendency for enhanced growth rates and/or productivity compared to rural conspecifics (e.g., Briber et al., 2015; O’Brien et al., 2012), which is typically attributed to increased temperatures (Jia et al., 2018; Pretzsch et al., 2017), yet feature a broad range of effect sizes and signs (i.e., reduced growth) specific to species and location. Zhao et al. (2016) showed that productivity rates, as a proxy for growth, increased within urban clusters as urbanization intensifies using remotely sensed vegetation indices. Further, Moser-Reischl et al. (2019) identified positive associations between air temperature and radial growth for two species (total of 20 individuals) commonly selected by urban planners (Tilia cordata MilL., Rubinia pseudoacacia) in Munich. Contrastingly, Gillner et al. (2014) highlight decreased growth for Acer species (A. platanoides and pseudoplatanus), Platanus x hispanica and Quercus rubra with higher summer temperatures of the preceding year, especially when compounded with drought, in another German metropolis (Dresden). Quigley (2004) identified absolute growth potential decreased for species between rural and urban conspecifics, yet assessments were limited to comparatively small sample sizes per group (\(n_{total}~=~230\) divided in 15 species, 3 groups and 2 locations). Pretzsch et al. (2017) inferred enhanced growth in recent decades and across urban locations spanning several latitudes, including Berlin - however, only 145 individuals of one species (T. cordata) were assessed there. As mentioned previously, climate-growth relationships can vary substantially between species, and in fact, Quigley (2004) and Pretzsch et al. (2017) report contrasting results regarding average tree diameter, i.e. smaller or larger for urban \(vs.\) rural trees of same age. Similarly, for Berlin, Dahlhausen et al. (2018), identified enhanced growth in highly urbanized environments (using basal area increments of a large sample of 252 trees) for T. cordata, the most abundant tree of the city, which they attributed to the UHI effect, while intermediate development intensity was adverse for tree growth. These differences in growth trends may result from contrasting species-specific responses to increased temperatures, but are indeed affected by other (time-varying) factors and stochastic processes, such as water availability, pollution and road-salt loading, structural impedance by infrastructure, or management, etc. (Pauleit et al., 2002; Quigley, 2004; Randrup et al., 2001; Rhoades and Stipes, 1999). Further, the variability in responses may require that assessments are developed for a specific region, because well-understood tree characteristics (e.g., see Brune, 2016; Roloff et al., 2009), could be strongly modulated predictably due to management, planting practices, or other environmental controls; for example, if drought hardiness is related to extensive root networks, restricted soil volumes available to street trees will render a species more vulnerable to water stress.
Space-for-time substitutions and time series comparisons between and within locations are a common approach (cf. studies above) to generate inferences in observational (rather than treatment-control) studies, where manipulations are costly or logistically unfeasible due to time and/or financial constraints. However, they require accounting for confounding factors specific to trees’ environments, such as street characteristics, development intensity, available soil volume, etc. While several of the aforementioned studies applied these approaches to quantify temperature and excess heat on growth, they typically compare trees grouped using qualitative or summary descriptors of sampling sites, disregarding the spatio-temporal variability in location-specific factors noted above. This can hinder the extrapolation from individual sampling sites toward predicting effects across entire urban areas and tree stocks, especially when studies rely on labor-intensive methods, which are limited logistically by sampling effort, reducing sample sizes and coverage of species and space. This can be exacerbated by a lack of co-located environmental variables (i.e. measured in situ) at pertinent spatial scales, for instance, as noted by Wohlfahrt et al. (2019) for air temperature and tree leaf phenology, which may lead to incorrect inferences and interpretations for the role of climate change on growth/productivity when applying space-for-time substitutions. It is thus likely that the varying and even contrasting growth responses observed for urban trees across and within studies are at least modulated by some confounding factors, making the attribution to a single driver, such as excess heat, more difficult and possibly less accurate.
These limitations could be overcome by relying on dendroecological surveys (i.e., incremental growth) or inventories (single or repeat) combined with pertinent environmental data with adequate spatio-temporal coverage and resolution. Such data are increasingly more available due to open data policies and because their value is recognized across several domains (e.g. Ossola et al., 2020). Berlin, as one of the greenest cities in Europe, provides an openly accessible tree inventory, with spatio-temporal environmental data sets relevant to tree growth. It features a total of 650000 individuals covering 94 genera and at least 600 species and/or cultivars, listing information on location, stem diameter (at breast height; \(DBH\)), and stem height, amongst other variables, for the majority of street and park trees. For this study, our objective was to assess the impact of excess urban heat, i.e. the UHI effect, on tree growth (\(DBH\)) using this openly available inventory data set, complemented by additional open data sources as well as incremental growth data from tree cores. The assessment relied on flexible statistical models that could capture species and location-specific responses to heat and other urban factors. Specifically, we aimed to (1) assess heat exposure of most abundant species; (2) determine the impact of (excess) heat on stem growth with space-for-time substitution to increase coverage; (3) highlight the role of location-specific environmental factors in mediating temperature responses. Our results are a contribution toward Berlin’s current and future management of its tree stock and may help drive adaptation to climate change. Despite being a case study for a single city, we believe our work may provide a flexible approach for other cities with available or growing inventories, as well as ancillary environmental data, and may also inform the use of other planning tools, such as species-climate matrices (Roloff et al., 2009) regarding temperature sensitivity.
Berlin is one of the largest metropolitan areas in Central Europe (892\(~km^2\)) with a population of approximately 3.6 million, and a maximum extent of 38\(~km\) in North-South and 45\(~km\) in East-West directions. It is located in North-Eastern Germany, and lies in the temperate zone with warm-humid climate (Dfb) according to the updated Köppen-Geiger classification (Beck et al., 2018), with mean annual temperature of approximately 10\(^\circ C\) and precipitation of 575\(~mm\) (Tempelhof weather station, DWD). Berlin features low relief (approximately 30\(~m\) to 60\(~m\) with 120\(~m\) at solitary peaks), and is centered around a glacial outwash valley (sands, gravel), bordered by two plateaus consisting of glacial till and clay in the North-East and South, as well as sands in the South-West. The city provides extensive public green space covering around 30\(~\%\) of its area (SUVK, Berlin, 2019), with an extensive urban forest of nearly 700000 publicly-managed trees along streets, in parks and in riparian areas.
Species-specifc growth responses in relation across Berlin were assessed in relat
We modeled the stem diameter (\(DBH\)) of Berlin’s ten most abundant species (contingent to ancillary data availability) in relationship to their location, age, a measure of excess heat (UrbClim by De Ridder et al., 2015; Berlin Environmental Atlas models; LandSat-derived surface urban heat island by Chakraborty and Lee, 2019), and additional environmental covariates with generalized additive models (GAMs, see Section\(~\)2.5 for details). Covariates were extracted at 150 and 300\(~m\) to infer the impact of reference scale of the urban fabric on tree growth. From all tested models the most suitable (i.e., parsimonious with highest explanatory) was employed for further analyses. An overview of data used for models, including sources, types, and application, is provided in Section\(~\)2.3 and in Table\(~\)2.2.
Berlin’s open data provided tree inventories including species, age, location, and circumference which was transformed into diameter.
Implausible observations, likely from erroneous data entry, were removed.
Additional manual data processing for quality control was done with a bespoke software datacleanr by Hurley et al. (submitted), where obvious outliers or clearly interpolated data were removed; the latter was deemed necessary, as several observations in multiple city districts were derived by linear relationships, which does not capture the ontogenic growth dynamics of trees, and leaves no variation related to variables other than age.
All of these operations were recorded, and can be viewed and reproduced via the supplementary code.
Lastly, observations with unlikely diameter-age combinations were identified via the residuals of a generalized linear model between diameter and age with a Gamma log-link distribution: if individual residuals exceeded seven times the median absolute deviation of all residuals, they were removed.
The median absolute deviation (MAD) is comparable to the inter quartile range, yet more robust to outliers:
\[MAD = median(|X_i - median(X)|) \] This approach is considered conservative (see supplementary information), yet all analyses were carried forward with the unfiltered and filtered data - no considerable differences were found, thus subsequent sections are based on the filtered data. Table\(~\)2.1 shows the binned distribution of genera across age classes. Final samples applied in models were smaller, following the availability of ancillary data for a given observation, and limited to a maximum age of 125 years to increase confidence in model estimates.
| Genera | (0,30] | (30,60] | (60,90] | (90,120] | (120,150] | 150+ | Total (n) | Missing (n) |
|---|---|---|---|---|---|---|---|---|
| Tilia | 40128 | 60854 | 34599 | 4390 | 120 | 11 | 140232 | 130 |
| Acer | 23306 | 33771 | 10220 | 1798 | 62 | 17 | 69330 | 156 |
| Quercus | 8686 | 16107 | 5721 | 2595 | 562 | 157 | 33873 | 45 |
| Platanus | 4467 | 11836 | 4784 | 1449 | 805 | 68 | 23425 | 16 |
| Aesculus | 4464 | 7064 | 5566 | 1211 | 91 | 25 | 18427 | 6 |
| Betula | 2469 | 7155 | 897 | 36 | 2 | 1 | 10572 | 12 |
| Fraxinus | 4324 | 3332 | 742 | 131 | 6 | 0 | 8543 | 8 |
| Robinia | 2494 | 4523 | 857 | 83 | 3 | 1 | 7975 | 14 |
| Carpinus | 3905 | 2349 | 176 | 4 | 0 | 0 | 6466 | 32 |
| Prunus | 3792 | 2121 | 111 | 12 | 0 | 0 | 6067 | 31 |
| Populus | 639 | 3559 | 991 | 279 | 17 | 14 | 5515 | 16 |
| Pinus | 422 | 1349 | 463 | 27 | 0 | 1 | 2269 | 7 |
| Other | 22337 | 12620 | 1799 | 448 | 61 | 17 | 37554 | 272 |
| Marg. Totals | 121433 | 166640 | 66926 | 12463 | 1729 | 312 | 370248 | 745 |
Temperature and UHI data were summarized temporally either by the provider or manually to provide a characteristic representation of heat loading during summer at different times (morning, afternoon/day, night), from which tree averages (radius of 150\(~m\)) were calculated. Two data sets of urban air and one surface temperature were tested as explanatory variables in GAM models. The air temperatures from the Berlin environmental atlas (EnvAt) are model outputs that are representations of typical summer conditions at 0400, 1400 and 2200 hours; these data are provided at city block basis (spatial polygons), from which weighted averages were extracted. UrbClim air temperatures are hourly model outputs [100\(~m\) resolution; De Ridder et al. (2015)]) based on ERA5 re-analyses data (ECMWF) for which observations from the hottest month available (June, 2011) were averaged to hours equivalent to EnvAt data by using a window of \(\pm~1~\)hour (i.e., 0300 to 0500, etc.). Subsequently, a land-use and land-cover mask (CORINE; European Union, Copernicus Land Monitoring Service 2018, European Environment Agency) was used to define urban and rural/forested areas. This was deemed reasonable as Berlin’s built-up area has not changed markedly over the past 50 years, i.e., about 52 to 61\(\%\) (Mohamed, 2017). The urban heat loading was then calculated as \(UHI_{x,y} = T_{Air_{2m}~x,y} - \overline{T_{Air_{2m}~Rural}}\), where \(x\) and \(y\) define an urban grid cell. The surface UHI data set by Chakraborty and Lee (2019) derives its measure in a similar fashion and the reader is referred to the detailed description therein; note this data set provides day and night-time averaged UHI estimates at 500\(~m\) resolution, which were extracted for the hottest summer in this record (2007).
Following the general approach described above, four ancillary covariates next to a temperature measure were employed in models; these were chosen due to their availability at high spatial resolution and coverage, and because their influence on growth was previously identified in literature or their likely impact could be deduced using ecophysiological principles. We included planting bed area and the sum of exchangeable basic cation as a proxy for soil nutrient availability (point extractions), as well as the proportional coverage of local climate zone 6 (LCZ6; open mid-rise, see Demuzere et al. (2019) and Stewart and Oke (2012) for details) and adjacent building height (spatial averages). The latter was chosen as an increase reflects a transition away from densely urbanized areas and had the highest coverage for the processed tree inventory. Note that only street trees in urban, not rural areas or within green spaces, were considered here, but individual trees may grow along streets adjacent to green spaces and parks of varying sizes.
| Name | Accessed | Type | Unit | Resolution | Radius | Source | Reference |
|---|---|---|---|---|---|---|---|
| Street Trees | Oct ’20 | Point | https://daten.berlin.de/ | ||||
| UHI Berlin | Dec ’19 | Raster | \(^\circ C\) | 500 | 150 | https://yceo.yale.edu/research/global-surface-uhi-explorer | Chakraborty et al. (2019) |
| UHI Berlin | Dec ’19 | Raster | \(^\circ C\) | 500 | 150 | https://yceo.yale.edu/research/global-surface-uhi-explorer | |
| Berlin Climate Model, Air temperature 2015 (Umweltatlas) | Feb ’21 | Polygon | \(^\circ C\) | 20 | https://daten.berlin.de/ | ||
| UrbClim ERA5 Model Output (ECMWF, UCSC) | Mar ’21 | Raster | \(^\circ C\) | 100 | 150 | https://cds.climate.copernicus.eu/ | Deridder et al. (2015) |
| Berlin Land-use | Apr ’21 | Polygon | https://daten.berlin.de/ | ||||
| Copernicus CORINE CLC | Mar ’21 | Raster | 100 | https://land.copernicus.eu/ | |||
| WUDAPT LCZ | Oct ’20 | Raster | 100 | 150/300 | https://www.wudapt.org/continental-lcz-maps/ | Demuzere et al. (2019) | |
| Berlin Veg/Building Height | Oct ’20 | Polygon | \(m\) | 150/300 | https://daten.berlin.de/ | ||
| Berlin Soil Nutrients, Bodenkundliche Kennwerte 2015 (Umweltatlas) | Nov ’20 | Polygon | \(mol~m^{-2}\) | 0 | https://daten.berlin.de/ | ||
| Planting Bed Area | Oct ’20 | Polygon | \(m^2\) | 0 | https://daten.berlin.de/ | ||
| Berlin Soils | Oct ’20 | Polygon | 0 | https://daten.berlin.de/ | |||
| Berlin Districts | Oct ’20 | Polygon | https://daten.berlin.de/ | ||||
| Berlin Transport Network | Feb ’21 | Polygon | OpenStreetMap Overpass API | ||||
| Berlin Water (Ways) | Feb ’21 | Polygon | OpenStreetMap Overpass API |
The proposed statistical method is from the class of hierarchical, generalized additive models (GAM, or GAMM for mixed models/hierarchical models). In these models combinations of continuous and categorical predictor variables can be summed to estimate a response. In particular, continuous variables that are linearly, as well as non-linearly related to the response can be represented by applying a transfer function, typically termed “smoothing function” (Wood, 2017); these are constructed using a number of base functions of varying complexity and form, which provides a high degree of flexibility, ideal for fitting ecosystem dynamics which are rarely linear (Pedersen et al., 2019), or correctly represented with deterministic functional forms (e.g. quadratic equations). In general, a GAM can be written as:
\[\begin{equation} E (Y)~=~g^{-1}\left( \beta_0 + \sum_{i = 1}^{n} f_i (x_i) \right), \tag{2.1} \end{equation}\]
and
\[\begin{equation} y~=~E (Y) + \epsilon, \tag{2.2} \end{equation}\]
where \(Y\) is taken from an appropriate distribution and corresponding link function \(g\), \(\beta_0\) is the intercept and \(f_i\) represents a smooth function of a predictor (Pedersen et al., 2019), and \(\epsilon \sim \mathcal{N}(0, \sigma ^2)\). Note, that \(f_i\) consists of a smooth (e.g. spline) constructed via basis functions of different form and complexity, multiplied by a coefficient:
\[\begin{equation} f_i(x_i)~=~\sum_{k = 1}^{K} \beta_{i, k} b_{i,k}(x_i). \tag{2.3} \end{equation}\]
Nested data structures (e.g. due to similar road [type]) can be accounted for by introducing random effects (Wood, 2017), while spatial dependence between observations can be included by constructing smoothing functions with e.g. northings and eastings, as for example done in (Augustin et al., 2009). Ultimately, the implementation of a such a GAMM will allow for establishing continuous prediction surfaces of growth potential (approximated via \(DBH\)) for individual species across urban areas (including parks) of Berlin.
Currently, \(DBH\) has been modeled using a hierarchical linear model (linear mixed effects model) with lme4 (Bates et al., 2015) in R Core Team (2020) (see Section\(~\)3).
The general form of this model is:
\[\begin{equation} Y_{i,j} = (\beta_0 + b_{0,i,j}) + (\beta_1 + b_{1,i,j}) \cdot x_i + \epsilon_{i,j}, \tag{2.4} \end{equation}\] where \(\beta_0\) is the intercept with its random component \(b_0\), and \(\beta_1\) the slope with its random component \(b_1\). The random errors are assumed i.i.d. and distributed as \(b \sim \mathcal{N}(0, \tau ^2)\). The model for which results are presented in Figure\(~\)3.5 estimates \(DBH\) from tree age and the local UHI intensity as continuous covariates with random slopes and intercepts for each species; note, that for computational efficiency each genera was modeled separately. Further, models were established for the three most abundant species per genera with at least 1000 individuals.
Figure 3.1: Individual tree locations for three categories available in Berlin Senate urban tree data set. Note, that for each category 7000 observations were subsampled from the available pool to facilitate visualization.
Figure 3.2: Gridded counts for the 11 most frequent genera, as well as Pinus and remaining genera. Note, that counts are standardized to unity for individual genera.
The distribution of the UHI effect is highly irregular and clustered in space (Fig.\(~\)3.3), and also shows variability through time (data not shown, refer to the urban heat island explorer).
Figure 3.3: Estimate of UHI intensity based on the algorithm in (Chakraborty and Lee, 2019), comparing urban with rural pixels within the greater metropolitan cluster. Presented values are averaged over the summer of 2007.
The exposure to increased heat-loading of individual genera (and consequently species) is highly uneven throughout the city (Fig.\(~\)3.4). Street and park trees of most genera are clustered in urban areas with intermediate to high UHI loading, while riparian trees, and some street and park trees of other genera tend to be spread more evenly across Berlin’s UHI range.
Figure 3.4: Empirical density distribution of all individuals within the presented genera along the UHI continuum. UHI intensities were extracted for each tree location, and the distribution hence represents the first detailed overview of the exposure of Berlin’s trees to urban heat loading. The black line is the density across all three categories. Insets show corresponding tree totals.
Note, that results below are preliminary and should be considered as a template for future outputs, rather than used for inference. The effect of UHI loading on absolute growth potential varies between genera and species (Fig.\(~\)3.5). Most notably, Quercus, the 3rd-most frequent genera, shows decreased absolute growth with increasing UHI loading, while the most frequent genera, Tilia, features contrasting relationships between species. The estimated effect sizes presented here are linear. However, temperature may exert a non-linear control on absolute growth and, hence, applying a method able to capture such dynamics may result in somewhat different effect sizes / behavior. Additionally, if temperatures increase in the future under climate warming, any non-linear effects may become more enhanced, stressing the need for a more flexible model fit and structure (i.e. using GAMM over linear models-).
Figure 3.5: Impact of UHI loading on tree diameter (\(DBH\)), accounting for age and inter-specific differences from the linear mixed model (via random slopes and intercepts). Line-ranges are standard errors of predicted effect sizes (i.e. slopes). Differences between street and park trees are considerable for some species, and may be due to local clustering and/or spatial under-representation across the UHI continuum. Further investigations need to address the degree of spatial autocorrelation and account for it where required in linear mixed models, and with smoothing interactions in a GAMM implementation.
Temperature, environmental and urban controls on tree growth
(Bussotti et al., 2014)
Implications:
We seek to build upon and improve the current analysis by:
This report was generated on 2021-11-23 17:57:33 using the following computational environment and dependencies:
#> ─ Session info ───────────────────────────────────────────────────────────────
#> setting value
#> version R version 4.1.0 (2021-05-18)
#> os Ubuntu 20.04.3 LTS
#> system x86_64, linux-gnu
#> ui X11
#> language (EN)
#> collate en_US.UTF-8
#> ctype en_US.UTF-8
#> tz Europe/Berlin
#> date 2021-11-23
#>
#> ─ Packages ───────────────────────────────────────────────────────────────────
#> ! package * version date lib source
#> P abind * 1.4-5 2016-07-21 [?] CRAN (R 4.1.0)
#> P ape 5.5 2021-04-25 [?] CRAN (R 4.1.0)
#> P assertthat 0.2.1 2019-03-21 [?] CRAN (R 4.0.2)
#> P backports 1.1.10 2020-09-15 [?] CRAN (R 4.1.0)
#> P base64url 1.4 2018-05-14 [?] CRAN (R 4.1.0)
#> P blob 1.2.1 2020-01-20 [?] CRAN (R 4.1.0)
#> P bookdown * 0.21 2020-10-13 [?] CRAN (R 4.1.0)
#> P boot 1.3-28 2021-05-03 [?] CRAN (R 4.0.5)
#> P broom 0.7.9 2021-07-27 [?] CRAN (R 4.1.0)
#> P callr 3.7.0 2021-04-20 [?] CRAN (R 4.1.0)
#> P cellranger 1.1.0 2016-07-27 [?] CRAN (R 4.1.0)
#> P ckanr * 0.5.0 2020-07-30 [?] CRAN (R 4.1.0)
#> P class 7.3-19 2021-05-03 [?] CRAN (R 4.0.5)
#> P classInt 0.4-3 2020-04-07 [?] CRAN (R 4.1.0)
#> P cli 3.0.0 2021-06-30 [?] CRAN (R 4.1.0)
#> P codetools 0.2-18 2020-11-04 [?] CRAN (R 4.0.3)
#> P colorspace 1.4-1 2019-03-18 [?] CRAN (R 4.1.0)
#> P crayon 1.4.1 2021-02-08 [?] CRAN (R 4.1.0)
#> P crul 1.0.0 2020-07-30 [?] CRAN (R 4.1.0)
#> P curl 4.3 2019-12-02 [?] CRAN (R 4.0.2)
#> P data.table * 1.13.2 2020-10-19 [?] CRAN (R 4.1.0)
#> P DBI * 1.1.0 2019-12-15 [?] CRAN (R 4.1.0)
#> P dbplyr 1.4.4 2020-05-27 [?] CRAN (R 4.1.0)
#> P desc 1.2.0 2018-05-01 [?] CRAN (R 4.1.0)
#> P devtools 2.3.1 2020-07-21 [?] CRAN (R 4.1.0)
#> P dichromat 2.0-0 2013-01-24 [?] CRAN (R 4.1.0)
#> P digest 0.6.27 2020-10-24 [?] CRAN (R 4.1.0)
#> P dplR 1.7.2 2021-01-31 [?] CRAN (R 4.1.0)
#> P dplyr * 1.0.7 2021-06-18 [?] CRAN (R 4.1.0)
#> P drake * 7.13.2 2021-04-22 [?] CRAN (R 4.1.0)
#> P e1071 1.7-4 2020-10-14 [?] CRAN (R 4.1.0)
#> P ecmwfr * 1.3.0 2020-07-13 [?] CRAN (R 4.1.0)
#> P ellipsis 0.3.2 2021-04-29 [?] CRAN (R 4.1.0)
#> P evaluate 0.14 2019-05-28 [?] CRAN (R 4.0.2)
#> P extrafont * 0.17 2014-12-08 [?] CRAN (R 4.1.0)
#> P extrafontdb 1.0 2012-06-11 [?] CRAN (R 4.1.0)
#> P fansi 0.4.1 2020-01-08 [?] CRAN (R 4.0.2)
#> P fasterize * 1.0.3 2020-07-27 [?] CRAN (R 4.1.0)
#> P filelock 1.0.2 2018-10-05 [?] CRAN (R 4.1.0)
#> P FNN 1.1.3 2019-02-15 [?] CRAN (R 4.1.0)
#> P forcats * 0.5.0 2020-03-01 [?] CRAN (R 4.0.2)
#> P fs * 1.5.0 2020-07-31 [?] CRAN (R 4.1.0)
#> P furrr * 0.2.0 2020-10-12 [?] CRAN (R 4.1.0)
#> P future * 1.19.1 2020-09-22 [?] CRAN (R 4.1.0)
#> P future.callr * 0.5.0 2019-09-28 [?] CRAN (R 4.1.0)
#> P generics 0.0.2 2018-11-29 [?] CRAN (R 4.1.0)
#> P ggplot2 * 3.3.5 2021-06-25 [?] CRAN (R 4.1.0)
#> P globals 0.13.1 2020-10-11 [?] CRAN (R 4.1.0)
#> P glue 1.4.2 2020-08-27 [?] CRAN (R 4.1.0)
#> P gstat 2.0-7 2021-03-19 [?] CRAN (R 4.1.0)
#> P gtable 0.3.0 2019-03-25 [?] CRAN (R 4.1.0)
#> P here * 0.1 2017-05-28 [?] CRAN (R 4.1.0)
#> P highr 0.8 2019-03-20 [?] CRAN (R 4.0.2)
#> P hms 1.1.0 2021-05-17 [?] CRAN (R 4.1.0)
#> P htmltools 0.5.1.1 2021-01-22 [?] CRAN (R 4.1.0)
#> P httpcode 0.3.0 2020-04-10 [?] CRAN (R 4.1.0)
#> P httr * 1.4.2 2020-07-20 [?] CRAN (R 4.1.0)
#> P igraph 1.2.6 2020-10-06 [?] CRAN (R 4.1.0)
#> P intervals 0.15.2 2020-04-04 [?] CRAN (R 4.1.0)
#> P jsonlite 1.7.2 2020-12-09 [?] CRAN (R 4.1.0)
#> P kableExtra * 1.3.4 2021-02-20 [?] CRAN (R 4.1.0)
#> P KernSmooth 2.23-20 2021-05-03 [?] CRAN (R 4.0.5)
#> P knitr 1.33 2021-04-24 [?] CRAN (R 4.1.0)
#> P lattice 0.20-44 2021-05-02 [?] CRAN (R 4.1.0)
#> P lifecycle 1.0.0 2021-02-15 [?] CRAN (R 4.1.0)
#> P listenv 0.8.0 2019-12-05 [?] CRAN (R 4.1.0)
#> P lme4 * 1.1-27 2021-05-15 [?] CRAN (R 4.1.0)
#> P lwgeom 0.2-5 2020-06-12 [?] CRAN (R 4.1.0)
#> P magrittr * 2.0.1 2020-11-17 [?] CRAN (R 4.1.0)
#> P mapproj 1.2.7 2020-02-03 [?] CRAN (R 4.1.0)
#> P maps 3.3.0 2018-04-03 [?] CRAN (R 4.1.0)
#> P MASS 7.3-54 2021-05-03 [?] CRAN (R 4.0.5)
#> P Matrix * 1.3-3 2021-05-04 [?] CRAN (R 4.1.0)
#> P matrixStats 0.57.0 2020-09-25 [?] CRAN (R 4.1.0)
#> P memoise 1.1.0 2017-04-21 [?] CRAN (R 4.1.0)
#> P mgcv 1.8-35 2021-04-18 [?] CRAN (R 4.1.0)
#> P minqa 1.2.4 2014-10-09 [?] CRAN (R 4.1.0)
#> P munsell 0.5.0 2018-06-12 [?] CRAN (R 4.1.0)
#> P ncdf4 * 1.17 2019-10-23 [?] CRAN (R 4.1.0)
#> P nlme 3.1-152 2021-02-04 [?] CRAN (R 4.0.3)
#> P nloptr 1.2.2.2 2020-07-02 [?] CRAN (R 4.1.0)
#> P pals 1.7 2021-04-17 [?] CRAN (R 4.1.0)
#> P patchwork * 1.1.1 2020-12-17 [?] CRAN (R 4.1.0)
#> P pillar 1.6.1 2021-05-16 [?] CRAN (R 4.1.0)
#> P pkgbuild 1.1.0 2020-07-13 [?] CRAN (R 4.1.0)
#> P pkgconfig 2.0.3 2019-09-22 [?] CRAN (R 4.0.2)
#> P pkgload 1.1.0 2020-05-29 [?] CRAN (R 4.1.0)
#> P plyr 1.8.6 2020-03-03 [?] CRAN (R 4.1.0)
#> P png 0.1-7 2013-12-03 [?] CRAN (R 4.1.0)
#> P prettyunits 1.1.1 2020-01-24 [?] CRAN (R 4.1.0)
#> P processx 3.5.2 2021-04-30 [?] CRAN (R 4.1.0)
#> P progress 1.2.2 2019-05-16 [?] CRAN (R 4.1.0)
#> P ps 1.4.0 2020-10-07 [?] CRAN (R 4.1.0)
#> P purrr * 0.3.4 2020-04-17 [?] CRAN (R 4.0.2)
#> P R.methodsS3 1.8.1 2020-08-26 [?] CRAN (R 4.1.0)
#> P R.oo 1.24.0 2020-08-26 [?] CRAN (R 4.1.0)
#> P R.utils 2.11.0 2021-09-26 [?] CRAN (R 4.1.0)
#> P R6 2.5.0 2020-10-28 [?] CRAN (R 4.1.0)
#> P raster * 3.4-10 2021-05-03 [?] CRAN (R 4.1.0)
#> P Rcpp 1.0.6 2021-01-15 [?] CRAN (R 4.1.0)
#> P readxl * 1.3.1 2019-03-13 [?] CRAN (R 4.1.0)
#> P remotes 2.2.0 2020-07-21 [?] CRAN (R 4.1.0)
#> renv 0.13.2 2021-03-30 [1] CRAN (R 4.1.0)
#> P rgdal * 1.5-18 2020-10-13 [?] CRAN (R 4.1.0)
#> P rlang * 0.4.11 2021-04-30 [?] CRAN (R 4.1.0)
#> P rmarkdown * 2.5 2020-10-21 [?] CRAN (R 4.1.0)
#> P rnaturalearth * 0.1.0 2017-03-21 [?] CRAN (R 4.1.0)
#> P rprojroot 1.3-2 2018-01-03 [?] CRAN (R 4.1.0)
#> P rstudioapi 0.11 2020-02-07 [?] CRAN (R 4.1.0)
#> P Rttf2pt1 1.3.8 2020-01-10 [?] CRAN (R 4.1.0)
#> P rvest 1.0.0 2021-03-09 [?] CRAN (R 4.1.0)
#> P scales * 1.1.1 2020-05-11 [?] CRAN (R 4.1.0)
#> P sessioninfo 1.1.1 2018-11-05 [?] CRAN (R 4.1.0)
#> P sf * 0.9-6 2020-09-13 [?] CRAN (R 4.1.0)
#> P signal 0.7-7 2021-05-25 [?] CRAN (R 4.1.0)
#> P snow * 0.4-3 2018-09-14 [?] CRAN (R 4.1.0)
#> P sp * 1.4-5 2021-01-10 [?] CRAN (R 4.1.0)
#> P spacetime 1.2-5 2021-06-14 [?] CRAN (R 4.1.0)
#> P stars * 0.4-3 2020-07-08 [?] CRAN (R 4.1.0)
#> P storr 1.2.4 2020-10-12 [?] CRAN (R 4.1.0)
#> P stringi 1.5.3 2020-09-09 [?] CRAN (R 4.1.0)
#> P stringr * 1.4.0 2019-02-10 [?] CRAN (R 4.0.2)
#> P svglite 2.0.0 2021-02-20 [?] CRAN (R 4.1.0)
#> P systemfonts 1.0.2 2021-05-11 [?] CRAN (R 4.1.0)
#> P testthat 3.0.4 2021-07-01 [?] CRAN (R 4.1.0)
#> P tibble * 3.0.4 2020-10-12 [?] CRAN (R 4.1.0)
#> P tidyr 1.1.2 2020-08-27 [?] CRAN (R 4.1.0)
#> P tidyselect 1.1.0 2020-05-11 [?] CRAN (R 4.0.2)
#> P txtq 0.2.3 2020-06-23 [?] CRAN (R 4.1.0)
#> P units 0.6-7 2020-06-13 [?] CRAN (R 4.1.0)
#> P usethis 1.6.1 2020-04-29 [?] CRAN (R 4.1.0)
#> P utf8 1.1.4 2018-05-24 [?] CRAN (R 4.0.2)
#> P vctrs 0.3.8 2021-04-29 [?] CRAN (R 4.1.0)
#> P viridisLite 0.4.0 2021-04-13 [?] CRAN (R 4.1.0)
#> P webshot 0.5.2 2019-11-22 [?] CRAN (R 4.1.0)
#> P withr 2.4.2 2021-04-18 [?] CRAN (R 4.1.0)
#> P xfun 0.24 2021-06-15 [?] CRAN (R 4.1.0)
#> P XML 3.99-0.8 2021-09-17 [?] CRAN (R 4.1.0)
#> P xml2 * 1.3.2 2020-04-23 [?] CRAN (R 4.1.0)
#> P xts 0.12.1 2020-09-09 [?] CRAN (R 4.1.0)
#> P yaml 2.2.1 2020-02-01 [?] CRAN (R 4.0.2)
#> P zoo 1.8-9 2021-03-09 [?] CRAN (R 4.1.0)
#>
#> [1] /home/hurley/_work/renv/berlin.trees-c2f6692a/R-4.1/x86_64-pc-linux-gnu
#> [2] /tmp/Rtmp6jWakD/renv-system-library
#> [3] /tmp/RtmpA9yxJR/renv-system-library
#>
#> P ── Loaded and on-disk path mismatch.
The current Git commit details are:
#> Local: master /home/hurley/_work/p_024_GFZ_berlin_trees/berlin.trees
#> Remote: master @ origin (https://github.com/the-Hull/berlin.trees)
#> Head: [d50f79f] 2021-11-23: cont methods